package other.third.entity;

import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
import lombok.EqualsAndHashCode;
import other.third.entity.base.Verify;

import java.util.Optional;

/**
 * 根据iccId获取物联网号的响应类
 *
 * @author 王霄
 * @date 2021/4/25
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class GetTelephoneByIccIdResponse extends Verify {

    /**
     * 流水号
     * 请求流水号，取客户资料查询流水号
     */
    private String GROUP_TRANSACTIONID;
    /**
     * 返回状态标识
     * 返回0，表示查询成功；
     * 返回-1，表示没有权限（用户名密码错误或iccid/imsi不属于该用户）；
     * 返回-2，表示参数错误（iccid或imsi号码错误）；
     * 返回-3，表示sign值错误（加密方式错误）
     */
    private String resultCode;
    /**
     * 返回标识说明
     * 1、处理成功
     * 2、用户名或密码错误，无权限
     * 3、未查询到数据
     * 4、未找到4G IMSI号码
     * 5、未找到接入号码
     * 6、未找到ICCID
     */
    private String resultMsg;
    /**
     * 结果字段
     */
    private Info info;

    @Data
    public static class Info {
        /**
         * 物联网接入号
         */
        private String access_number;
        /**
         * ICCID
         */
        private String ICCID;
        /**
         * 返回3gimsi
         */
        @JSONField(name = "3G_IMSI")
        private String IMSI_3G;
        /**
         * 返回4gimsi
         */
        @JSONField(name = "4G_IMSI")
        private String IMSI_4G;
    }

    @Override
    public boolean verify() {
        return Optional.of(this)
                .filter(x -> "0".equals(x.getResultCode()) && x.getInfo() != null)
                .isPresent();

    }

}
